/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.agi.sistema;

import br.com.agi.fs.Diretorio;
import br.com.agi.gae.comandos.Comando;
import br.com.agi.gae.comandos.ComandoLogout;
import br.com.agi.gae.comandos.ComandoNovoDiretorio;
import br.com.agi.gae.dominio.Usuario;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 *
 * @author renato.grosz
 */
public class Servidor  {
    private Set<Usuario> usuariosCadastrados;
    private Diretorio diretorio;
    private Map <String,Comando> comandosTotais;
    private Map <String,Comando> comandosGuest;

    public Servidor(){
        Usuario admin;
        
        admin=new Usuario();
        admin.setLogin("renato");
        admin.setSenha("admin");
        
        usuariosCadastrados=new HashSet<Usuario>();
        usuariosCadastrados.add(admin);

        comandosTotais=new HashMap<String,Comando>();


        criarComandosTotais();

        comandosGuest=new HashMap<String,Comando>();

        
    }
    public SessaoNoSistema login(Usuario usuarioTentandoEntrar) {
        SessaoNoSistema retorno;

        retorno=new SessaoNoSistema(this);
        retorno.setComandos(comandosGuest);

        for(Usuario item : usuariosCadastrados){
            if(item.equals(usuarioTentandoEntrar)){
                if(item.getSenha().equals(usuarioTentandoEntrar.getSenha())){                    
                    retorno.setComandos(comandosTotais);
                }
            }
        }
        return(retorno);
    }

    public void setSistemaGravacao(Diretorio sistemaGravacao) {
        this.diretorio=sistemaGravacao;
    }

    public Diretorio getSistemaGravacao(){
        return(diretorio);
    }

    private void criarComandosTotais(){
        Comando cmd;
        cmd=new ComandoNovoDiretorio();
        comandosTotais.put("nd", cmd);
        
        cmd=new ComandoLogout();
        comandosTotais.put("logout", cmd);
    }

}
